MongoDB入门-CRUD简单操作

  1. 1. 第一步-启动mongodb:
  2. 2. 第二步-启动 mongo shell
  3. 3. 第三步-创建数据库laispace
  4. 4. 第四步-向数据库中添加数据
  5. 5. 第六步-更新数据
  6. 6. 第七步-删除数据
  7. 7. 第八步-继续学习
  8. 8. 其他笔记
  9. 9. 修改器
  10. 10. 查询操作

按着 mongodb官网 教程安装好后,练习一下CRUD(增加、读取、更新、删除)操作。

// 我把数据库保存在了 ~/nosql/mongodb下

第一步-启动mongodb:

$ cd nosql/mongodb/bin

$ sudo ./mongod

这样,mongodb就启动了,接着是创建数据库。进行简单的CRUD。

第二步-启动 mongo shell

$ ./mongo

第三步-创建数据库laispace

// $ help

// 显示已有的数据库

$ show dbs

// 切换数据库,这里用了新的数据库laispace,则自动创建

$ use laispace

// 注意这时候没有插入数据,但实际上已经创建了

第四步-向数据库中添加数据

// db即表示laispace数据库,先建立users文档并插入一个新用户

$ var newUser = { “name”: “赖小赖”, “email”: “example@gmail.com”};

$ db.users.insert(newUser);

// 继续插入

$ var anotherNewUser = { “name”: “小清”, “email”: “123456@gmail.com”};

$ db.users.insert(anotherNewUser);

# 第五步-查找数据

// 查看laispace是否创建

$ show dbs

// 切换到laispace

$ use laispace

// 查看laispace下有哪些文档

$ show collections

// 查看laispace.users下有哪些数据

$ db.users.find(); // 或 $ db.getCollection(‘users’).find();

// 查看其中一个

$ db.users.findOne({“name”: “小清”});

第六步-更新数据

var xiaoqing = {

“name”: “小清”,
“email”: “abcd@laispace.com”,
“password”: “myLatestPassword”
};

$ db.users.update({“name”: “小清”}, xiaoqing);

$ db.users.findOne({“name”: “小清”});

第七步-删除数据

// 看看已有的数据

$ db.users.find();

$ db.users.find({“name”: “小清”});

// 删除 小清

$ db.users.remove({“name”: “小清”});

$ db.users.findOne({“name”: “小清”});

$ db.users.find();

// 删除全部

$ db.users.remove();
$ db.users.find()

第八步-继续学习

$ console.log(“待补充!”);

其他笔记

  • mongodb 默认占用了系统的27017端口,而打开 http://localhost:28017 则可以进入管理界面:

修改器

[javascript]

// 原子修改器
db.users.update({"name": "小清"}, {
"$inc": {
"age": 1 // 年龄加一
}
})
"$inc" // 增加
"$set" // 修改,无则创建
"$unset" // 删除

// 数组修改器
// "$push" // 添加
// "$pop": {key: 1} // 数组末删除一个元素
// "$pop": {key: -1} // 数组头删除一个元素
// "$pull": {"foo": "bar"} // 删除数组foo中的bar

// 函数 update(query , obj , upsert , multi) 参数说明:
$ db.users.update({"name": "小清"}, xiaoqing);
// 若指定第三个参数upsert为true,即:
$ db.users.update({"name": "小清"}, xiaoqing, true);
// 则表示:
// - 若找到匹配文档,正常更新;
// - 若没有文档符合更新条件,则以这个条件和更新文档为基础建立一个新的文档。
// 若指定第四个参数multi为true, 即:
$ db.users.update({"name": "小清"}, xiaoqing, true, true);
// 则表示:
// 匹配到的所有文档都得到更新(为false则只匹配第一个)。

[/javascript]

 

查询操作

[javascript]

// 查找全部,缺省参数{} 即 db.users.find({});
$ db.users.find();
// 指定范围查找
$ db.users.find({"name": "小清", "email": "abcd@laispace.com"});
// 查找全部,但只返回指定的键,1表示true, 注意 _id 总会被返回
$ db.users.find({}, {"name": 1, "email": 1});
// 查找全部,但不要返回指定的键,0表示false
$ db.users.find({}, {"password": 0});
// 大于小于
$ db.users.find({"age": {"$gte": 18, "$lte": 30}}) // 大于等于18小于等于30岁
db.users.find({"registered": {"$lt": new Date("01/01/2014")}}); // 在2014/01/01前注册
// 不等于
$ db.users.find({"name": {"$ne": "小清"}}); // 用户名不是『小清』
// 包含于
db.users.find({"name": {"$in": ["小清", "小赖"]}}); // 用户名是『小清』或『小赖』
// 不包含于
db.users.find({"name": {"$nin": ["小清", "小赖"]}}); // 用户名不是『小清』和『小赖』
// 或
db.users.find({"$or": [{"name": "小清"}, {"email": "123@example.com"}]}); // 用户名是『小清』或 邮箱是 "123@example.com"

[/javascript]